Java (Java is a software technique including a programming language and is a registered trademark of Sun Microsystems Inc. in U.S.) has program portability, and there is proposed a technique for utilizing the portability to provide an extendable application (U.S. Pat. No. 6,349,408 and OSGi Service Platform Specification Release 2, OSGi, 2001). According to this technique, programs are executed on one application, and therefore, the required number of hardware resources is reduced in comparison with the case of extending functions in unit of an application.
In OSGi Service Platform (hereinafter abbreviated as OSGi), a software module to be added to an application is referred to as a bundle, and specifications are defined for managing the life cycle of a software module, for example, installation/activation/termination/update/uninstallation of a bundle. Furthermore, OSGi is also provided with a function of storing the condition of each bundle being executed when the application stops, and returning the status of each bundle to the status at the time of the stop when the application is re-activated.
Conventionally, software modules have been treated as one application from the viewpoint of an operating system managing softwares. Therefore, a software separation/execution function (a function of executing software in a different space as a process), which is originally provided for the operating system, cannot be used in order to prevent a trouble of one software module from affecting other software modules. Consequently, there is a high possibility that a software module with a high possibility of causing a trouble because of performing advanced processing causes a trouble which leads the entire application into malfunction.
Since hardware resources of equipment have been abundant, it is possible to introduce a more enhanced operating system into equipment to execute multiple applications at the same time. Accordingly, it is possible to solve problems by executing additional functions as separate applications (processes).
However, a procedure for extending functions of one application and a procedure for extending functions as a separate application are different from each other. Therefore, there are multiple procedures for the purpose of managing the life cycle of the same extended function. Furthermore, in the case of adding a function only by adding an application, there is a problem that a user may be confused by change in the operation method. Furthermore, there is also a problem that a software module for functional extension, which has been purchased or developed, may not be used at all, and inheritance of software assets is sacrificed.